package com.yf.modules.system.service.api;


import com.yf.domain.security.User;
import com.yf.model.query.UserQueryCriteria;
import com.yf.modules.system.model.vo.UserPassVO;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author chentianwei
 * @date 2023/5/22 13:53
 * @description userApi
 */
public interface UserService {
    /**
     * 查询用户信息
     *
     * @param criteria 查询条件s
     * @return 用户信息
     */
    List<User> queryUserinfo(UserQueryCriteria criteria);

    /**
     * 新增用户
     *
     * @param user 用户实体
     */
    void create(User user);

    /**
     * 删除用户
     *
     * @param ids 用户实体
     */
    void delete(Set<Long> ids);

    /**
     * 更新用户
     *
     * @param user 用户实体
     */
    void update(User user);

    /**
     * 导出用户
     *
     * @param criteria 查询条件
     * @param response 流式返回体
     */
    void download(UserQueryCriteria criteria, HttpServletResponse response) throws IOException;

    /**
     * 重置密码
     * @param ids 主键
     */
    void resetUserPassword(Set<Long> ids);
}
